Türkçe

API'leri ve uygulamaları güvence altına almak için sektör standardı yetkilendirme protokolü OAuth 2.0'ın temel ilkelerini, iş akışlarını ve güvenlik hususlarını keşfedin.

Kimlik ve Erişim Yönetimi: OAuth 2.0'a Derinlemesine Bakış

Bugünün birbirine bağlı dijital ortamında, API'lere ve uygulamalara erişimi güvence altına almak büyük önem taşımaktadır. OAuth 2.0, kullanıcı kimlik bilgilerini paylaşmadan kaynaklara erişimi yetkilendirmek için güvenli ve esnek bir yol sağlayarak sektör standardı yetkilendirme protokolü olarak öne çıkmıştır. Bu kapsamlı kılavuz, OAuth 2.0'ın temel ilkelerini, iş akışlarını, güvenlik hususlarını ve gerçek dünya uygulamalarını kapsayan derinlemesine bir keşif sunmaktadır.

OAuth 2.0 Nedir?

OAuth 2.0, bir üçüncü taraf uygulamasının, kaynak sahibinin adına veya üçüncü taraf uygulamasının kendi adına erişim elde etmesine izin vererek bir HTTP hizmetine sınırlı erişim elde etmesini sağlayan bir yetkilendirme çerçevesidir. Kimlik doğrulama ile ilgili bir protokol değildir. Kimlik doğrulama bir kullanıcının kimliğini doğrular; yetkilendirme ise bir kullanıcının (veya uygulamanın) hangi kaynaklara erişmesine izin verildiğini belirler. OAuth 2.0 yalnızca yetkilendirmeye odaklanır.

Vale park hizmeti gibi düşünün. Siz (kaynak sahibi), aracınızı park etmek için valeye (üçüncü taraf uygulama) araba anahtarlarınızı (erişim belirteci) verirsiniz (korumalı kaynak). Vale, ev adresinizi veya kasanızın şifresini (parolanızı) bilmek zorunda değildir. Yalnızca belirli görevlerini yerine getirmek için yeterli erişime sahip olmaları gerekir.

OAuth 2.0'daki Temel Roller

OAuth 2.0 Akışları (İzin Türleri)

OAuth 2.0, istemcinin bir erişim belirtecini nasıl alacağını belirleyen çeşitli izin türlerini veya akışları tanımlar. Her akış belirli kullanım durumları ve güvenlik gereksinimleri için tasarlanmıştır.

Yetkilendirme Kodu İzni

Yetkilendirme kodu izni, web uygulamaları ve yerel uygulamalar için en yaygın ve önerilen akıştır. Şu adımları içerir:

  1. İstemci, kaynak sahibini yetkilendirme sunucusuna yönlendirir.
  2. Kaynak sahibi, yetkilendirme sunucusu ile kimliğini doğrular ve istemciye onay verir.
  3. Yetkilendirme sunucusu, bir yetkilendirme kodu ile kaynak sahibini istemciye geri yönlendirir.
  4. İstemci, yetkilendirme kodunu bir erişim belirteci ve (isteğe bağlı olarak) bir yenileme belirteci ile değiştirir.
  5. İstemci, korumalı kaynaklara erişmek için erişim belirtecini kaynak sunucusunda kullanır.

Örnek: Bir kullanıcı, bulut depolama hesabında saklanan fotoğraflara erişmek için üçüncü taraf bir fotoğraf düzenleme uygulaması kullanmak istiyor. Uygulama, kullanıcıyı bulut depolama sağlayıcısının yetkilendirme sunucusuna yönlendirir; burada kullanıcı kimliğini doğrular ve uygulamanın fotoğraflarına erişmesine izin verir. Ardından bulut depolama sağlayıcısı, kullanıcıyı bir yetkilendirme kodu ile uygulamaya geri yönlendirir; uygulama bu kodu bir erişim belirteci ile değiştirir. Uygulama daha sonra kullanıcının fotoğraflarını indirmek ve düzenlemek için erişim belirtecini kullanabilir.

Örtük İzin

Örtük izin, bir web tarayıcısında çalışan JavaScript uygulamaları gibi istemci tarafı uygulamalar için tasarlanmış basitleştirilmiş bir akıştır. Şu adımları içerir:

  1. İstemci, kaynak sahibini yetkilendirme sunucusuna yönlendirir.
  2. Kaynak sahibi, yetkilendirme sunucusu ile kimliğini doğrular ve istemciye onay verir.
  3. Yetkilendirme sunucusu, bir erişim belirtecini URL parçacığında kaynak sahibini istemciye geri yönlendirir.
  4. İstemci, URL parçacığından erişim belirtecini çıkarır.

Not: Erişim belirteci URL'de göründüğü ve ele geçirilebileceği için örtük izin, güvenlik endişeleri nedeniyle genellikle önerilmez. PKCE (Kod Değişimi İçin Kanıt Anahtarı) ile Yetkilendirme Kodu İzni, istemci tarafı uygulamalar için çok daha güvenli bir alternatiftir.

Kaynak Sahibi Parola Kimlik Bilgileri İzni

Kaynak sahibi parola kimlik bilgileri izni, istemcinin kaynak sahibinin kullanıcı adını ve parolasını doğrudan yetkilendirme sunucusuna sağlayarak bir erişim belirteci almasını sağlar. Bu akış yalnızca kaynak sunucusunun kuruluşuna tarafından geliştirilen birinci taraf uygulamalar gibi yüksek derecede güvenilir istemciler için önerilir.

  1. İstemci, kaynak sahibinin kullanıcı adını ve parolasını yetkilendirme sunucusuna gönderir.
  2. Yetkilendirme sunucusu, kaynak sahibini doğrular ve bir erişim belirteci ve (isteğe bağlı olarak) bir yenileme belirteci yayınlar.

Uyarı: Bu izin türü, istemcinin kaynak sahibinin kimlik bilgilerini işlemesini gerektirdiği ve kimlik bilgileri tehlikeye girme riskini artırdığı için son derece dikkatli kullanılmalıdır. Mümkün olduğunda alternatif akışları düşünün.

İstemci Kimlik Bilgileri İzni

İstemci kimlik bilgileri izni, istemcinin kendi kimlik bilgilerini (istemci kimliği ve istemci gizli anahtarı) kullanarak bir erişim belirteci almasını sağlar. Bu akış, istemcinin bir kaynak sahibi adına değil, kendi adına hareket ettiği senaryolar için uygundur. Örneğin, bir istemci sistem düzeyinde bilgi sağlayan bir API'ye erişmek için bu akışı kullanabilir.

  1. İstemci, istemci kimliğini ve istemci gizli anahtarını yetkilendirme sunucusuna gönderir.
  2. Yetkilendirme sunucusu, istemciyi doğrular ve bir erişim belirteci yayınlar.

Örnek: Bir izleme hizmetinin sistem metriklerini toplamak için API uç noktalarına erişmesi gerekiyor. Hizmet, kullanıcı etkileşimi gerektirmeden korumalı uç noktalara erişmesine izin veren bir erişim belirteci almak için istemci kimliği ve gizli anahtarını kullanarak kimliğini doğrular.

Yenileme Belirteci İzni

Yenileme belirteci, kaynak sahibinin yeniden kimlik doğrulaması gerekmeden yeni erişim belirteçleri almak için kullanılabilecek uzun ömürlü bir belirteçtir. Yenileme belirteci izni, istemcinin yeni bir erişim belirteci için bir yenileme belirtecini değiştirmesine izin verir.

  1. İstemci, yenileme belirtecini yetkilendirme sunucusuna gönderir.
  2. Yetkilendirme sunucusu, yenileme belirtecini doğrular ve yeni bir erişim belirteci ve (isteğe bağlı olarak) yeni bir yenileme belirteci yayınlar.

Yenileme belirteçleri, kullanıcıların kimlik bilgilerini tekrar tekrar istemeden sürekli erişimi sürdürmek için çok önemlidir. Yenileme belirteçlerini istemci tarafında güvenli bir şekilde depolamak çok önemlidir.

OAuth 2.0 Güvenlik Hususları

OAuth 2.0 yetkilendirme için güvenli bir çerçeve sağlarken, potansiyel güvenlik açıklarından kaçınmak için doğru şekilde uygulamak önemlidir. İşte bazı temel güvenlik hususları:

OAuth 2.0 ve OpenID Connect (OIDC)

OpenID Connect (OIDC), OAuth 2.0 üzerine inşa edilmiş bir kimlik doğrulama katmanıdır. OAuth 2.0 yetkilendirmeye odaklanırken, OIDC kimlik doğrulama yetenekleri ekleyerek istemcilerin kaynak sahibinin kimliğini doğrulamasına olanak tanır. OIDC, kimlik bilgilerini güvenli bir şekilde istemci, yetkilendirme sunucusu ve kaynak sunucusu arasında iletmek için JSON Web Token'larını (JWT) kullanır.

OIDC, OAuth 2.0 kullanarak kimlik doğrulaması yapmak için standartlaştırılmış bir yol sağlar, entegrasyon sürecini basitleştirir ve farklı sistemler arasında birlikte çalışabilirliği artırır. Kullanıcı bilgilerini istemek ve almak için kullanılabilecek çeşitli standart kapsamlar ve talepler tanımlar.

OIDC kullanmanın temel faydaları:

Gerçek Dünya OAuth 2.0 Örnekleri

OAuth 2.0, çeşitli sektörlerde ve uygulamalarda yaygın olarak kullanılmaktadır. İşte bazı yaygın örnekler:

OAuth 2.0 Uygulaması İçin En İyi Uygulamalar

Güvenli ve güvenilir bir OAuth 2.0 uygulaması sağlamak için şu en iyi uygulamaları izleyin:

OAuth 2.0'ın Geleceği

OAuth 2.0, değişen güvenlik ortamına ve gelişen teknolojilere uyum sağlamak için gelişmeye devam etmektedir. OAuth 2.0'ın geleceğini şekillendiren temel eğilimlerden bazıları şunlardır:

Sonuç

OAuth 2.0, günümüzün birbirine bağlı dijital dünyasında API'leri ve uygulamaları güvence altına almakta kritik bir rol oynayan güçlü ve esnek bir yetkilendirme çerçevesidir. OAuth 2.0'ın temel ilkelerini, iş akışlarını ve güvenlik hususlarını anlayarak, geliştiriciler ve güvenlik uzmanları hassas verileri koruyan ve kullanıcı gizliliğini sağlayan güvenli ve güvenilir sistemler oluşturabilirler. OAuth 2.0 gelişmeye devam ettikçe, modern güvenlik mimarilerinin temel taşı olmaya devam edecek ve küresel çapta çeşitli platformlar ve hizmetler arasında güvenli erişim yetkilendirmesini sağlayacaktır.

Bu kılavuz, OAuth 2.0'ın kapsamlı bir genel bakışını sunmaktadır. Daha ayrıntılı bilgi için resmi OAuth 2.0 spesifikasyonlarına ve ilgili belgelere bakın.